/* 
 * File:   BMP.h
 * Author: Maximiliano Monzon (Padron: 82341)
 *
 * Created on October 3, 2012, 7:22 PM
 */

#ifndef BMP_H
#define	BMP_H

#include <fstream>
#include <string>
#include "BMPHeader.h"
#include "IGraficable.h"
#include "Pixel.h"

using namespace std;
using namespace TP::Grafica;

#define BMP_TIPO_WINDOWS 0x424D

namespace TP { namespace Grafica { namespace Renderizado { 

    class BMP {
        public:
            
            BMP(long int alto, long int ancho);
            
            virtual ~BMP();
            
            const Pixel& getPixel (long int pFila, long int pColumna);
            
            const Pixel& setPixel (long int pFila, long int pColumna, Pixel* pPixel);
            
            long int width();
            
            long int height();
            
            friend ostream& operator<< (ostream& stream, const BMP& bmp);
            
        private:
            
            BMPHeader header;
            Pixel *blanco;
            Pixel***pixels;
    };

}}}

#endif	/* BMP_H */

